@echo off
chcp 65001 >nul
setlocal enabledelayedexpansion

:: 检查管理员权限
net session >nul 2>&1
if %errorLevel% neq 0 (
    echo 正在请求管理员权限...
    powershell -Command "Start-Process '%~0' -Verb RunAs"
    exit /b
)

:menu
cls
echo ====================================
echo        Windows 系统管理工具
echo ====================================
echo.
echo  [UAC 管理]
echo  1. 禁用 UAC
echo  2. 启用 UAC（恢复默认设置）
echo.
echo  [Windows Defender 白名单]
echo  3. 添加白名单目录
echo  4. 移除白名单目录
echo.
echo  [HVCI 管理]
echo  5. 禁用内核隔离(HVCI)
echo.
echo  6. 退出
echo ====================================
echo.

choice /c 123456 /n /m "请输入选项（1-6）："
if errorlevel 6 goto end
if errorlevel 5 goto disable_hvci
if errorlevel 4 goto remove_whitelist
if errorlevel 3 goto add_whitelist
if errorlevel 2 goto enable_uac
if errorlevel 1 goto disable_uac
goto menu

:disable_uac
cls
echo.
echo 正在修改注册表以禁用 UAC...
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v "EnableLUA" /t REG_DWORD /d 0 /f >nul
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v "ConsentPromptBehaviorAdmin" /t REG_DWORD /d 0 /f >nul
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v "PromptOnSecureDesktop" /t REG_DWORD /d 0 /f >nul

if %errorLevel% equ 0 (
    echo UAC 已成功禁用！
    echo 请重启计算机以使更改生效。
) else (
    echo 修改注册表失败！
)
pause
goto menu

:enable_uac
cls
echo.
echo 正在修改注册表以启用 UAC...
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v "EnableLUA" /t REG_DWORD /d 1 /f >nul
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v "ConsentPromptBehaviorAdmin" /t REG_DWORD /d 5 /f >nul
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v "PromptOnSecureDesktop" /t REG_DWORD /d 1 /f >nul

if %errorLevel% equ 0 (
    echo UAC 已成功启用并恢复为默认设置！
    echo 请重启计算机以使更改生效。
) else (
    echo 修改注册表失败！
)
pause
goto menu

:add_whitelist
cls
echo.
:: 需要排除的目录列表
set "dirs="C:\Windows" "C:\Users" "C:\ProgramData""

echo 正在添加排除目录...
for %%d in (%dirs%) do (
    if not exist %%d (
        echo  [跳过] 目录不存在: %%d
    ) else (
        echo  正在处理: %%d
        powershell -Command "Add-MpPreference -ExclusionPath %%d" >nul
        if !errorlevel! equ 0 (
            echo  [成功] %%d
        ) else (
            echo  [失败] %%d
        )
    )
)
echo 所有目录处理完成！
pause
goto menu

:remove_whitelist
cls
echo.
:: 需要移除的目录列表
set "dirs="C:\Windows" "C:\Users" "C:\ProgramData""

echo 正在移除排除目录...
for %%d in (%dirs%) do (
    if not exist %%d (
        echo  [跳过] 目录不存在: %%d
    ) else (
        echo  正在处理: %%d
        powershell -Command "Remove-MpPreference -ExclusionPath %%d" >nul
        if !errorlevel! equ 0 (
            echo  [成功] %%d
        ) else (
            echo  [失败] %%d
        )
    )
)
echo 所有目录处理完成！
pause
goto menu

:disable_hvci
cls
echo.
echo 正在修改注册表以禁用内核隔离(HVCI)...
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity" /v "Enabled" /t REG_DWORD /d 0 /f >nul

if %errorLevel% equ 0 (
    echo 成功禁用内核隔离！
    echo 请重启计算机以使更改生效。
) else (
    echo 修改注册表失败！
)
pause
goto menu

:end
cls
echo 感谢使用！
timeout /t 2 >nul
exit 